:root {
    --fluid--min-width: 320;
    --fluid--max-width: 1440;
    --fluid--screen: 100vw;
    --fluid--breakpoint: calc((var(--fluid--screen) - var(--fluid--min-width) / 16 * 1rem) / (var(--fluid--max-width) - var(--fluid--min-width)));
    --scale-minor-second: 1.067;
    --scale-major-second: 1.125;
    --scale-minor-third: 1.2;
    --scale-major-third: 1.25;
    --scale-perfect-fourth: 1.333;
    --scale-augmented-fourth: 1.414;
    --scale-perfect-fifth: 1.5;
    --scale-golden: 1.618;
    --scale: var(--scale-minor-third);
    --scale-pow-minus-2: calc(var(--scale) / var(--scale) / var(--scale));
    --scale-pow-minus-1: calc(var(--scale) / var(--scale));
    --scale-pow-1: calc(var(--scale) * 1);
    --scale-pow-2: calc(var(--scale) * var(--scale));
    --scale-pow-3: calc(var(--scale) * var(--scale) * var(--scale));
    --scale-pow-4: calc(var(--scale) * var(--scale) * var(--scale) * var(--scale));
    --scale-pow-5: calc(var(--scale) * var(--scale) * var(--scale) * var(--scale) * var(--scale));
    --type-scale-min: var(--scale-minor-third);
    --type-scale-max: var(--scale-major-third);
    --type-scale-min-pow-minus-4: calc(1 / var(--type-scale-min) / var(--type-scale-min) / var(--type-scale-min) / var(--type-scale-min));
    --type-scale-min-pow-minus-3: calc(1 / var(--type-scale-min) / var(--type-scale-min) / var(--type-scale-min));
    --type-scale-min-pow-minus-2: calc(1 / var(--type-scale-min) / var(--type-scale-min));
    --type-scale-min-pow-minus-1: calc(1 / var(--type-scale-min));
    --type-scale-min-pow-1: calc(var(--type-scale-min) * 1);
    --type-scale-min-pow-2: calc(var(--type-scale-min) * var(--type-scale-min));
    --type-scale-min-pow-3: calc(var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min));
    --type-scale-min-pow-4: calc(var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min));
    --type-scale-min-pow-5: calc(var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min) * var(--type-scale-min));
    --type-scale-max-pow-minus-4: calc(1 / var(--type-scale-max) / var(--type-scale-max) / var(--type-scale-max) / var(--type-scale-max));
    --type-scale-max-pow-minus-3: calc(1 / var(--type-scale-max) / var(--type-scale-max) / var(--type-scale-max));
    --type-scale-max-pow-minus-2: calc(1 / var(--type-scale-max) / var(--type-scale-max));
    --type-scale-max-pow-minus-1: calc(1 / var(--type-scale-max));
    --type-scale-max-pow-1: calc(var(--type-scale-max) * 1);
    --type-scale-max-pow-2: calc(var(--type-scale-max) * var(--type-scale-max));
    --type-scale-max-pow-3: calc(var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max));
    --type-scale-max-pow-4: calc(var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max));
    --type-scale-max-pow-5: calc(var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max) * var(--type-scale-max));
    --font-size-min: 16;
    --font-size-max: 18;
    --font-size-min-xs: calc(var(--font-size-min) * var(--type-scale-min-pow-minus-2));
    --font-size-min-sm: calc(var(--font-size-min) * var(--type-scale-min-pow-minus-1));
    --font-size-min-md: var(--font-size-min);
    --font-size-min-lg: calc(var(--font-size-min) * var(--type-scale-min-pow-1));
    --font-size-min-xl: calc(var(--font-size-min) * var(--type-scale-min-pow-2));
    --font-size-min-2xl: calc(var(--font-size-min) * var(--type-scale-min-pow-3));
    --font-size-min-3xl: calc(var(--font-size-min) * var(--type-scale-min-pow-4));
    --font-size-min-4xl: calc(var(--font-size-min) * var(--type-scale-min-pow-5));
    --font-size-max-xs: calc(var(--font-size-max) * var(--type-scale-max-pow-minus-2));
    --font-size-max-sm: calc(var(--font-size-max) * var(--type-scale-max-pow-minus-1));
    --font-size-max-md: var(--font-size-max);
    --font-size-max-lg: calc(var(--font-size-max) * var(--type-scale-max-pow-1));
    --font-size-max-xl: calc(var(--font-size-max) * var(--type-scale-max-pow-2));
    --font-size-max-2xl: calc(var(--font-size-max) * var(--type-scale-max-pow-3));
    --font-size-max-3xl: calc(var(--font-size-max) * var(--type-scale-max-pow-4));
    --font-size-max-4xl: calc(var(--font-size-max) * var(--type-scale-max-pow-5));
    --font-size-xs: calc(((var(--font-size-min-xs) / 16) * 1rem) + (var(--font-size-max-xs) - var(--font-size-min-xs)) * var(--fluid--breakpoint));
    --font-size-sm: calc(((var(--font-size-min-sm) / 16) * 1rem) + (var(--font-size-max-sm) - var(--font-size-min-sm)) * var(--fluid--breakpoint));
    --font-size-md: calc(((var(--font-size-min-md) / 16) * 1rem) + (var(--font-size-max-md) - var(--font-size-min-md)) * var(--fluid--breakpoint));
    --font-size-lg: calc(((var(--font-size-min-lg) / 16) * 1rem) + (var(--font-size-max-lg) - var(--font-size-min-lg)) * var(--fluid--breakpoint));
    --font-size-xl: calc(((var(--font-size-min-xl) / 16) * 1rem) + (var(--font-size-max-xl) - var(--font-size-min-xl)) * var(--fluid--breakpoint));
    --font-size-2xl: calc(((var(--font-size-min-2xl) / 16) * 1rem) + (var(--font-size-max-2xl) - var(--font-size-min-2xl)) * var(--fluid--breakpoint));
    --font-size-3xl: calc(((var(--font-size-min-3xl) / 16) * 1rem) + (var(--font-size-max-3xl) - var(--font-size-min-3xl)) * var(--fluid--breakpoint));
    --font-size-4xl: calc(((var(--font-size-min-4xl) / 16) * 1rem) + (var(--font-size-max-4xl) - var(--font-size-min-4xl)) * var(--fluid--breakpoint));
    --font-size: var(--font-size-md);
    --spacing-min: var(--font-size-min);
    --spacing-max: var(--font-size-max);
    --spacing-min-2xs: calc(var(--spacing-min) * 0.25);
    --spacing-min-xs: calc(var(--spacing-min) * 0.5);
    --spacing-min-sm: calc(var(--spacing-min) * 0.75);
    --spacing-min-md: var(--spacing-min);
    --spacing-min-lg: calc(var(--spacing-min) * 1.5);
    --spacing-min-xl: calc(var(--spacing-min) * 2);
    --spacing-min-2xl: calc(var(--spacing-min) * 4);
    --spacing-min-3xl: calc(var(--spacing-min) * 6);
    --spacing-min-4xl: calc(var(--spacing-min) * 8);
    --spacing-max-2xs: calc(var(--spacing-max) * 0.25);
    --spacing-max-xs: calc(var(--spacing-max) * 0.5);
    --spacing-max-sm: calc(var(--spacing-max) * 0.75);
    --spacing-max-md: var(--spacing-max);
    --spacing-max-lg: calc(var(--spacing-max) * 1.5);
    --spacing-max-xl: calc(var(--spacing-max) * 2);
    --spacing-max-2xl: calc(var(--spacing-max) * 4);
    --spacing-max-3xl: calc(var(--spacing-max) * 6);
    --spacing-max-4xl: calc(var(--spacing-max) * 8);
    --spacing-2xs: calc(((var(--spacing-min-2xs) / 16) * 1rem) + (var(--spacing-max-2xs) - var(--spacing-min-2xs)) * var(--fluid--breakpoint));
    --spacing-xs: calc(((var(--spacing-min-xs) / 16) * 1rem) + (var(--spacing-max-xs) - var(--spacing-min-xs)) * var(--fluid--breakpoint));
    --spacing-sm: calc(((var(--spacing-min-sm) / 16) * 1rem) + (var(--spacing-max-sm) - var(--spacing-min-sm)) * var(--fluid--breakpoint));
    --spacing-md: calc(((var(--spacing-min-md) / 16) * 1rem) + (var(--spacing-max-md) - var(--spacing-min-md)) * var(--fluid--breakpoint));
    --spacing-lg: calc(((var(--spacing-min-lg) / 16) * 1rem) + (var(--spacing-max-lg) - var(--spacing-min-lg)) * var(--fluid--breakpoint));
    --spacing-xl: calc(((var(--spacing-min-xl) / 16) * 1rem) + (var(--spacing-max-xl) - var(--spacing-min-xl)) * var(--fluid--breakpoint));
    --spacing-2xl: calc(((var(--spacing-min-2xl) / 16) * 1rem) + (var(--spacing-max-2xl) - var(--spacing-min-2xl)) * var(--fluid--breakpoint));
    --spacing-3xl: calc(((var(--spacing-min-3xl) / 16) * 1rem) + (var(--spacing-max-3xl) - var(--spacing-min-3xl)) * var(--fluid--breakpoint));
    --spacing-4xl: calc(((var(--spacing-min-4xl) / 16) * 1rem) + (var(--spacing-max-4xl) - var(--spacing-min-4xl)) * var(--fluid--breakpoint));
    --spacing-2xs-xs: calc(((var(--spacing-min-2xs) / 16) * 1rem) + (var(--spacing-max-xs) - var(--spacing-min-2xs)) * var(--fluid--breakpoint));
    --spacing-xs-sm: calc(((var(--spacing-min-xs) / 16) * 1rem) + (var(--spacing-max-sm) - var(--spacing-min-xs)) * var(--fluid--breakpoint));
    --spacing-xs-md: calc(((var(--spacing-min-xs) / 16) * 1rem) + (var(--spacing-max-md) - var(--spacing-min-xs)) * var(--fluid--breakpoint));
    --spacing-xs-lg: calc(((var(--spacing-min-xs) / 16) * 1rem) + (var(--spacing-max-lg) - var(--spacing-min-xs)) * var(--fluid--breakpoint));
    --spacing-xs-xl: calc(((var(--spacing-min-xs) / 16) * 1rem) + (var(--spacing-max-xl) - var(--spacing-min-xs)) * var(--fluid--breakpoint));
    --spacing-sm-md: calc(((var(--spacing-min-sm) / 16) * 1rem) + (var(--spacing-max-md) - var(--spacing-min-sm)) * var(--fluid--breakpoint));
    --spacing-sm-lg: calc(((var(--spacing-min-sm) / 16) * 1rem) + (var(--spacing-max-lg) - var(--spacing-min-sm)) * var(--fluid--breakpoint));
    --spacing-sm-xl: calc(((var(--spacing-min-sm) / 16) * 1rem) + (var(--spacing-max-xl) - var(--spacing-min-sm)) * var(--fluid--breakpoint));
    --spacing-md-lg: calc(((var(--spacing-min-md) / 16) * 1rem) + (var(--spacing-max-lg) - var(--spacing-min-md)) * var(--fluid--breakpoint));
    --spacing-md-xl: calc(((var(--spacing-min-md) / 16) * 1rem) + (var(--spacing-max-xl) - var(--spacing-min-md)) * var(--fluid--breakpoint));
    --spacing-lg-xl: calc(((var(--spacing-min-lg) / 16) * 1rem) + (var(--spacing-max-xl) - var(--spacing-min-lg)) * var(--fluid--breakpoint));
    --spacing-xl-2xl: calc(((var(--spacing-min-xl) / 16) * 1rem) + (var(--spacing-max-2xl) - var(--spacing-min-xl)) * var(--fluid--breakpoint));
    --spacing-2xl-3xl: calc(((var(--spacing-min-2xl) / 16) * 1rem) + (var(--spacing-max-3xl) - var(--spacing-min-2xl)) * var(--fluid--breakpoint));
    --spacing-3xl-4xl: calc(((var(--spacing-min-3xl) / 16) * 1rem) + (var(--spacing-max-4xl) - var(--spacing-min-3xl)) * var(--fluid--breakpoint));
    --spacing: var(--spacing-md);
    --alert--gap: var(--spacing);
}
